package net.linku.converter;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import net.linku.domain.LARole;
import net.linku.model.req.role.AdminRoleReq;
import net.linku.model.resp.login.LARoleVO;
import org.mapstruct.Builder;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * RoleMapperConverter 接口，用于将 LARole 实体列表转换为 LARoleVO 视图对象列表。
 * <p>
 * 这个接口使用 MapStruct 注解处理器自动生成实现代码。
 * </p>
 * <p>
 * 通过使用 @Mapper 注解，MapStruct 会在编译时生成该接口的实现类。
 * 该实现类可以通过 MenuMapper.INSTANCE 进行访问。
 * </p>
 * 作者：SilenceTian
 * 日期：2024/7/13
 */
@Mapper(builder = @Builder(disableBuilder = true))
public interface RoleMapperConverter {

    RoleMapperConverter INSTANCE = Mappers.getMapper(RoleMapperConverter.class);

    List<LARoleVO> covertToRoleVO(List<LARole> roles);

    Page<LARoleVO> covertToPageRoleVO(Page<LARole> roles);

    LARole covertReqToRole(AdminRoleReq roleReq);
}
